package cn.well.cloud.generator.template;
import cn.hutool.core.util.StrUtil;
import cn.well.cloud.generator.template.config.GunsTemplateEngine;

/**
 * 通用的模板生成引擎
 *
 * @author fengshuonan
 * @date 2017-05-09 20:32
 */
public class SimpleTemplateEngine extends GunsTemplateEngine {
    
    @Override
    protected void generateController() {
        String controllerPath = StrUtil.format(super.getContextConfig().getProjectPath() + super.getControllerConfig().getControllerPathTemplate(),
                StrUtil.upperFirst(super.getContextConfig().getBizEnName()));
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/Controller.java.btl", controllerPath);
        System.out.println(super.contextConfig.getBizEnName()+"Controller.java控制器生成成功!");
    }

    @Override
    protected void generateSqls() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + super.sqlConfig.getSqlPathTemplate(),
                StrUtil.upperFirst(super.getContextConfig().getBizEnName()));
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/menu_sql.sql.btl", path);
        System.out.println("生成sql成功!");
    }
    
    @Override
    protected void generateXmlExt() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + super.daoConfig.getXmlExtPathTemplate(),
                StrUtil.upperFirst(super.getContextConfig().getBizEnName()));
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/ExtMapper.xml.btl", path);
        System.out.println("mapping/ext/"+super.contextConfig.getModuleName()+"Mapper.xml生成成功!");
        
    }
    
    @Override
    protected void generatePageEditHtml() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageEditPathTemplate(),
                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_edit.html.btl", path);
        System.out.println(super.getContextConfig().getBizEnName()+"_edit.html编辑页面生成成功!");
    }

    @Override
    protected void generatePageAddHtml() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageAddPathTemplate(),
                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_add.html.btl", path);
        System.out.println(super.getContextConfig().getBizEnName()+"_add.html添加页面生成成功!");
    }

    @Override
    protected void generatePageAddJs() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageAddJsPathTemplate(),
                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_add.js.btl", path);
        System.out.println(super.getContextConfig().getBizEnName()+"_add.js生成成功!");
    }

    @Override
    protected void generatePageEditJs() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageEditJsPathTemplate(),
                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page_edit.js.btl", path);
        System.out.println(super.getContextConfig().getBizEnName()+"_edit.js生成成功!");
    }
    
    @Override
    protected void generatePageJs() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPageJsPathTemplate(),
                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page.js.btl", path);
        System.out.println(super.getContextConfig().getBizEnName()+".js生成成功!");
    }

    @Override
    protected void generatePageHtml() {
        String path = StrUtil.format(super.getContextConfig().getProjectPath() + getPageConfig().getPagePathTemplate(),
                super.getContextConfig().getBizEnName(), super.getContextConfig().getBizEnName());
        generateFile(super.getContextConfig().getTemplatePrefixPath() + "/page.html.btl", path);
        System.out.println(super.getContextConfig().getBizEnName()+".html页面生成成功!");
    }

}
